# Copyright 2021-2025 Avaiga Private Limited
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
# an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
# specific language governing permissions and limitations under the License.
from taipy.gui.extension import Element, ElementLibrary, ElementProperty, PropertyType


class Library(ElementLibrary):
    """Test Extension Library"""

    def get_name(self) -> str:
        return "test"

    def get_elements(self) -> dict:
        return {
            "test": Element(
                "test",
                {
                    "test": ElementProperty(PropertyType.string, default_value="test", doc_string=""),
                    "dict_test": ElementProperty(
                        PropertyType.dict,
                        default_value="{}",
                    ),
                },
                doc_string="""Multi-line test doc.
                              With some indentation.
                              """,
            ),
        }

    def get_tgb_header(self) -> str:
        return "# Test Extension Library TGB Header"
